import moment from "moment";

/**
 * 原型方法接口
 */
declare global {
    interface String {
        /**
         * 年月日时分秒分割转年月日
         */
        toDate(): string
    }
}

/**
 * 年月日时分秒分割转年月日
 */
String.prototype.toDate = function (): string {
    const str = this?.toString(); // 确保是字符串
    if (!str) return '';
    return str?.split(' ')?.[0]
}

/**
 * 时间格式化
 */
type dateFormatType =
    'YYYY-MM-DD' |
    'YYYY/MM/DD' |
    'YYYY.MM.DD' |
    'YYYY MM DD' |
    'YYYY-MM-D' |
    'YYYY-M-DD' |
    'YYYY-M-D' |
    'YYYY/MM/D' |
    'YYYY/M/DD' |
    'YYYY/M/D' |
    'YYYY.MM.D' |
    'YYYY.M.DD' |
    'YYYY.M.D' |
    'YYYY MM D' |
    'YYYY M DD' |
    'YYYY M D' |
    'YYYY-MM-DD HH:mm:ss' |
    'YYYY/MM/DD HH:mm:ss' |
    'YYYY-MM-DD HH:mm' |
    'YYYY-MM-DDTHH:mm:ss' |
    'YYYY-MM-DDTHH:mm:ss.SSSZ'
export const dateFormat = (date: Date = new Date(), format: dateFormatType = "YYYY-MM-DD") => {
    return moment(date).format(format);
}